package com.ruoyi.system.service.sz.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.system.domain.sz.SzLeaderGroupSnapshot;
import com.ruoyi.system.domain.sz.SzPersonalFile;
import com.ruoyi.system.mapper.sz.SzLeaderGroupSnapshotMapper;
import com.ruoyi.system.service.sz.ISzLeaderGroupSnapshotService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;


/**
 * 领导小组&密码办Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-03-16
 */
@Service
public class SzLeaderGroupSnapshotServiceImpl implements ISzLeaderGroupSnapshotService
{
    @Autowired
    private SzLeaderGroupSnapshotMapper szLeaderGroupSnapshotMapper;

    /**
     * 查询领导小组&密码办
     * 
     * @param groupId 领导小组&密码办主键
     * @return 领导小组&密码办
     */
    @Override
    public SzLeaderGroupSnapshot selectSzLeaderGroupSnapshotByGroupId(Long groupId)
    {
        return szLeaderGroupSnapshotMapper.selectSzLeaderGroupSnapshotBySnapshotId(groupId);
    }

    /**
     * 查询领导小组&密码办列表
     * 
     * @param szLeaderGroupSnapshot 领导小组&密码办
     * @return 领导小组&密码办
     */
    @Override
    public List<SzLeaderGroupSnapshot> selectSzLeaderGroupSnapshotList(SzLeaderGroupSnapshot szLeaderGroupSnapshot)
    {
        return szLeaderGroupSnapshotMapper.selectSzLeaderGroupSnapshotList(szLeaderGroupSnapshot);
    }

    /**
     * 新增领导小组&密码办
     * 
     * @param szLeaderGroupSnapshot 领导小组&密码办
     * @return 结果
     */
    @Transactional
    @Override
    public int insertSzLeaderGroupSnapshot(SzLeaderGroupSnapshot szLeaderGroupSnapshot)
    {
        szLeaderGroupSnapshot.setCreateTime(DateUtils.getNowDate());
        int rows = szLeaderGroupSnapshotMapper.insertSzLeaderGroupSnapshot(szLeaderGroupSnapshot);
        insertSzPersonalFile(szLeaderGroupSnapshot);
        return rows;
    }

    /**
     * 修改领导小组&密码办
     * 
     * @param szLeaderGroupSnapshot 领导小组&密码办
     * @return 结果
     */
    @Transactional
    @Override
    public int updateSzLeaderGroupSnapshot(SzLeaderGroupSnapshot szLeaderGroupSnapshot)
    {
        szLeaderGroupSnapshot.setUpdateTime(DateUtils.getNowDate());
        szLeaderGroupSnapshotMapper.deleteSzLeaderGroupSnapshotBySnapshotId(szLeaderGroupSnapshot.getSnapshotId());
        insertSzPersonalFile(szLeaderGroupSnapshot);
        return szLeaderGroupSnapshotMapper.updateSzLeaderGroupSnapshot(szLeaderGroupSnapshot);
    }

    /**
     * 批量删除领导小组&密码办
     * 
     * @param groupIds 需要删除的领导小组&密码办主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteSzLeaderGroupSnapshotByGroupIds(Long[] groupIds)
    {
        szLeaderGroupSnapshotMapper.deleteSzLeaderGroupSnapshotBySnapshotIds(groupIds);
        return szLeaderGroupSnapshotMapper.deleteSzLeaderGroupSnapshotBySnapshotIds(groupIds);
    }

    /**
     * 删除领导小组&密码办信息
     * 
     * @param groupId 领导小组&密码办主键
     * @return 结果
     */
    @Transactional
    @Override
    public int deleteSzLeaderGroupSnapshotByGroupId(Long groupId)
    {
        szLeaderGroupSnapshotMapper.deleteSzLeaderGroupSnapshotBySnapshotId(groupId);
        return szLeaderGroupSnapshotMapper.deleteSzLeaderGroupSnapshotBySnapshotId(groupId);
    }

    /**
     * 新增个人信息-附件信息
     * 
     * @param szLeaderGroupSnapshot 领导小组&密码办对象
     */
    public void insertSzPersonalFile(SzLeaderGroupSnapshot szLeaderGroupSnapshot)
    {
//        List<SzPersonalFile> szPersonalFileList = szLeaderGroupSnapshot.getSzPersonalFileList();
//        Long groupId = szLeaderGroupSnapshot.getGroupId();
//        if (StringUtils.isNotNull(szPersonalFileList))
//        {
//            List<SzPersonalFile> list = new ArrayList<SzPersonalFile>();
//            for (SzPersonalFile szPersonalFile : szPersonalFileList)
//            {
//                szPersonalFile.setGroupId(groupId);
//                list.add(szPersonalFile);
//            }
//            if (list.size() > 0)
//            {
//                szLeaderGroupSnapshotMapper.batchSzPersonalFile(list);
//            }
//        }
    }
}
